/**
 * Created by jiachenpan on 16/11/18.
 */

export function isvalidUsername(str) {
  const valid_map = ['admin', 'editor']
  return valid_map.indexOf(str.trim()) >= 0
}

/* 验证长度大于len，默认len为0 */
export function validLength(str, len = 0) {
  return str.trim().length > len
}

/* 合法uri */
export function validateURL(textval) {
  const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
  return urlregex.test(textval)
}

/* 小写字母 */
export function validateLowerCase(str) {
  const reg = /^[a-z]+$/
  return reg.test(str)
}

/* 大写字母 */
export function validateUpperCase(str) {
  const reg = /^[A-Z]+$/
  return reg.test(str)
}

/* 大小写字母 */
export function validateAlphabets(str) {
  const reg = /^[A-Za-z]+$/
  return reg.test(str)
}

/**
 * validate email
 * @param email
 * @returns {boolean}
 */
export function validateEmail(email) {
  const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
  return re.test(email)
}

/**
 * validate mobile
 * @param mobile
 * @returns {boolean}
 */
/**
 * 手机号验证
 * */
export function validateMobile(str) {
  const reg = /^1[0-9]{10}$/
  return reg.test(str.trim())
}
// 国际手机号验证 00 开头不超过 20 位
export function validateMobileGW(str) {
  const reg = /^00[0-9]{6,18}$/
  const regs = /^1[0-9]{10}$/

  if (str) {
    return reg.test(str.trim()) || regs.test(str.trim())
  }
  return false
}

/**
 * 判断是否在微信环境
 */
export function isWeixinCient() {
  const ua = navigator.userAgent.toLowerCase()
  const isWeixin = ua.indexOf('micromessenger') !== -1
  if (isWeixin) {
    return true
  }
  return false
}

/**
 * 判断是苹果还是安卓
 */
export function isIOS() {
  const ua = navigator.userAgent.toLowerCase()
  // else if (/(Android)/i.test(navigator.userAgent)) {
  if (/(iPhone|iPad|iPod|iOS)/i.test(ua)) {
    return true
  }
  return false
}

/**
 * 判断是否在微分销APP中
 */
export function isAPP() {
  const u = window.navigator.userAgent
  const isAPP_ios = /wxfenxiao_ios/i.test(u)
  const isAPP_android = /wxfenxiao_android/i.test(u)
  const INAPP = isAPP_ios || isAPP_android
  if (INAPP) {
    return true
  }
  return false
}

/**
 * 验证身份证
 */
export function IdentityCodeValid(code) {
  let pass = true
  code = code.trim() // 去掉首尾空格
  // 身份证号码为15位或者18位，15位时全为数字，18位前17位为数字，最后一位是校验位，可能为数字或字符X
  const reg = /(^\d{17}(\d|X|x)$)/
  if (reg.test(code) === false) {
    pass = false
  }
  return pass
}
/**
 * 判断item是否在数组arr中
 */
export function isInArray(item, arr) {
  for (let i = 0; i < arr.length; i++) {
    if (item == arr[i]) {
      return true
    }
  }
  return false
}

// 判断字符串是否为JSON格式
export function isJSON(str) {
  if (typeof str === 'string') {
    try {
      const obj = JSON.parse(str)
      if (typeof obj === 'object' && obj) {
        return true
      }
      return false
    } catch (e) {
      return false
    }
  }
  // console.log('It is not a string!')
}

